<!DOCTYPE html>
<html lang="en">
<head>
    <title>AGV调度演示</title>
	<meta charset="utf-8">
	<meta http-equiv="content-type" content="text/html;utf-8" />
	<meta name="keywords" content="agv" />
	<meta name="description" content="AGV" />
	<meta name="author" content="ttscm.com.cn" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
	<meta name="format-detection" content="telephone=no" />
	<script src="/srds/js/jquery-3.6.0.min.js"></script>

	<script>
		// 1. 小车取料到上料待命点
		// 2. 查询机械手状态，上料并回返程待命点
		// 3. 查询机械手状态，通知小车拉空蛋车返程
		// 第一个寄存器AGV控制，1-AGV上料完成，2-空车拉回完成；第二个寄存器机械臂控制，1-要求AGV上料，2-要求AVG拉回空车；

		// 1.码盘任务，空蛋车
		// 1.1 F1取空蛋车-AP12，F3上空蛋车-AP12，Q2满蛋车拉回
		
		// 2.卸盘任务，满蛋车
		// 2.1 F2取满蛋车-AP12，F3上满蛋车-AP12，Q1空蛋车拉回
	
		var statusInterval = null;
		var signalInterval = null;
		
		var isAgvCompleted = false;
		// const AGV_PARKING_LOCATION_MARK = "LM15";
		// const TASK_LIST_NAME_01 = "TL_ZFLKM_01";
		// const TASK_LIST_NAME_02 = "TL_ZFLKM_02";
		
		// const AGV_UP_PARKING_LOCATION_MARK = "LM5"; //上料待命点
		// const AGV_TAKE_PARKING_LOCATION_MARK = "LM7"; //机械臂取料待命点
		// const AGV_BACK_PARKING_LOCATION_MARK = "AP10"; //机械臂取料待命点

		const AGV_UP_PARKING_LOCATION_MARK = "AP12"; //上料车 待命点
		const AGV_TAKE_PARKING_LOCATION_MARK = "LM11"; //等待 机械臂码盘/卸盘 待命点
		const AGV_BACK_PARKING_LOCATION_MARK = "AP12"; //回程通知机械臂 待命点
		
		// 码盘
		const TASK_LIST_NAME = "F1";
		const TASK_LIST_NAME_UP = "F3";
		const TASK_LIST_NAME_BACK = "Q2";


		// 卸盘
		const TASK_LIST_NAME2 = "F2";
		const TASK_LIST_NAME2_UP = "F3";
		const TASK_LIST_NAME2_BACK = "Q1";
		

		$(function() {

			//智飞龙科马 码盘
			$("#btnZflkm").click(function() {
				execTask();
			});

			//智飞龙科马 卸盘
			$("#btnZflkm2").click(function() {
				execTask2();
			});


			//////////////////////////////////////////
			$("#btnZflkmTake").click(function() {
				execTaskTake();
			});

			$("#btnZflkmUp").click(function() {
				execTaskUp();
			});

			$("#btnZflkmBack").click(function() {
				execTaskBack();
			});
			
		});
		
		/////////////////////////////////////////////////////////////码盘\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
		// 执行任务
		function execTask() {
			$("#areaExecuteStatus").css("color", "#000000");
			$("#areaExecuteStatus").text("正在下发调度指令...");
			console.info('---码盘开始...');
			
			let strUrl = "/srds/zflkm/execTask/" + TASK_LIST_NAME; //空车到待命点
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				$("#areaExecuteStatus").css("color", "#000000");
				$("#areaExecuteStatus").text("AGV取空蛋车中...");
				
				// 查询取空蛋车导航状态
				statusInterval = setInterval(readUpParkingStatus, 2000);
			}).fail(function(jqxhr, textStatus, error) {
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，请重试...");
				console.info('请重试取空车调度指令...');
			});
		}
		
		// 查询取空蛋车导航状态
		function readUpParkingStatus() {
		  //	$("#areaExecuteStatus").css("color", "#000000");
		  //	$("#areaExecuteStatus").text("任务执行中..." + new Date().getTime());

			$.getJSON("/srds/zflkm/taskStatus", function(result) {
				if (result.code != 0) {
					//clearInterval(statusInterval);
					console.error(result);
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				if (result.data.statusCode == 4 && result.data.targetId == AGV_UP_PARKING_LOCATION_MARK) {
					clearInterval(statusInterval);
					$("#areaExecuteStatus").css("color", "#000000");
					$("#areaExecuteStatus").text("AGV已到上空蛋车待命点...");
					console.info("AGV已到上空蛋车待命点...");
					
					// 查询机械臂可用状态
					signalInterval = setInterval(readDevAva, 2000);
				};
			}).fail(function(jqxhr, textStatus, error) {
				//clearInterval(statusInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("查询取空蛋车状态出错，等待重试...");
			});
		}

		// 查询机械臂可用状态（等待上空蛋车）
		function readDevAva() {
			// // 第一个寄存器AGV控制，1-AGV上料完成，2-空车拉回完成；第二个寄存器机械臂控制，1-要求AGV上料，2-要求AVG拉回空车；
			let strUrl = "/srds/zflkm/readSignal/1/";
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					//clearInterval(signalInterval);
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				let iSignal = result.data;
				console.info("机械臂状态", iSignal);
				
				if (iSignal == 1) {	// 机械臂可用，AGV上空蛋车
					clearInterval(signalInterval);
					$("#areaExecuteStatus").css("color", "#000000");
					$("#areaExecuteStatus").text("机械臂可用，呼叫AGV上空蛋车...");

				//	$("#areaExecuteStatus").css("color", "#000000");
				//	$("#areaExecuteStatus").text("正在下发调度指令...");
					let strUrl = "/srds/zflkm/execTask/" + TASK_LIST_NAME_UP; //上空蛋车到机械臂
					$.getJSON(strUrl, function(result) {
						if (result.code != 0) {
							$("#areaExecuteStatus").css("color", "#FF0000");
							$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
							
							// 需要手工上空蛋车
							console.warn("---需要手工上空蛋车");
							// return;
						}
					 //	$("#areaExecuteStatus").css("color", "#000000");
					 //	$("#areaExecuteStatus").text("调度指令下发正常...");
						
						// 查询上空蛋车到机械臂状态
						statusInterval = setInterval(readUpDevStatus, 2000);
					});
				}
			}).fail(function(jqxhr, textStatus, error) {
				//clearInterval(signalInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("查询机械臂可用状态出错，等待重试...");
			});
		}
		
		// 查询上空蛋车到机械臂状态
		function readUpDevStatus() {
		//	$("#areaExecuteStatus").css("color", "#000000");
		//	$("#areaExecuteStatus").text("任务执行中..." + new Date().getTime());

			$.getJSON("/srds/zflkm/taskStatus", function(result) {
				if (result.code != 0) {
					//clearInterval(statusInterval);
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				if (result.data.statusCode == 4 && result.data.targetId == AGV_TAKE_PARKING_LOCATION_MARK) {
					clearInterval(statusInterval);
					$("#areaExecuteStatus").css("color", "#000000");
					$("#areaExecuteStatus").text("AGV上空蛋车完毕...");
					console.info("AGV上空蛋车完毕...");
					
					// // 第一个寄存器AGV控制，1-AGV上料完成，2-空车拉回完成；第二个寄存器机械臂控制，1-要求AGV上料，2-要求AVG拉回空车；
					noticeDev();
				};
			}).fail(function(jqxhr, textStatus, error) {
				// clearInterval(statusInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("查询上空蛋车到机械臂状态出错，等待重试...");
			});
		}


		// 通知机械臂码盘
		function noticeDev() {
			$("#areaExecuteStatus").css("color", "#000000");
			$("#areaExecuteStatus").text("通知机械臂码盘...");
			let strUrl = "/srds/zflkm/setSignal/0/1";
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					
					console.warn("---通知机械臂码盘异常，需要手动补偿...");
					
					//return;
				}
				$("#areaExecuteStatus").css("color", "#000000");
				$("#areaExecuteStatus").text("等待机械臂码盘...");
				
				console.info("---等待机械臂码盘...");
				
				// 机械臂码盘状态查询
				signalInterval = setInterval(readDevTakeStatus, 10000);
			}).fail(function(jqxhr, textStatus, error) {
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("通知机械臂码盘异常...");
				
				console.warn("---通知机械臂码盘异常，需要手动补偿...");
			});
		}

		// 机械臂码盘状态查询
		function readDevTakeStatus() {
			// // 第一个寄存器AGV控制，1-AGV上料完成，2-空车拉回完成；第二个寄存器机械臂控制，1-要求AGV上料，2-要求AVG拉回空车；
			let strUrl = "/srds/zflkm/readSignal/1";
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					// clearInterval(signalInterval);
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					
					return;
				}
				let iSignal = result.data;
				console.info("机械臂状态", iSignal);
				
				if (iSignal == 2) {	// 机械臂码盘完毕
					$("#areaExecuteStatus").css("color", "#000000");
					$("#areaExecuteStatus").text("机械臂码盘完毕，呼叫AGV返程...");
					clearInterval(signalInterval);

				//	$("#areaExecuteStatus").css("color", "#000000");
				//	$("#areaExecuteStatus").text("正在下发调度指令...");
					let strUrl = "/srds/zflkm/execTask/" + TASK_LIST_NAME_BACK; //空蛋车返程
					$.getJSON(strUrl, function(result) {
						if (result.code != 0) {
							$("#areaExecuteStatus").css("color", "#FF0000");
							$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
							return;
						}
					//	$("#areaExecuteStatus").css("color", "#000000");
					//	$("#areaExecuteStatus").text("调度指令下发正常...");
						
						// 查询AGV返程状态
						statusInterval = setInterval(readBackStatus, 2000);
					});
				}
			}).fail(function(jqxhr, textStatus, error) {
				// clearInterval(signalInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("机械臂码盘状态查询出错，等待重试...");
				
				console.warn("机械臂码盘状态查询出错，等待重试...");
			});
		}

		// 查询AGV返程状态
		function readBackStatus() {
		 //	$("#areaExecuteStatus").css("color", "#000000");
		 //	$("#areaExecuteStatus").text("任务执行中..." + new Date().getTime());

			$.getJSON("/srds/zflkm/taskStatus", function(result) {
				if (result.code != 0) {
					//clearInterval(statusInterval);
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					
					console.info('查询AGV返程状态出错，等待重试...');
					
					return;
				}
				if (result.data.statusCode == 4 && result.data.targetId == AGV_BACK_PARKING_LOCATION_MARK) {
					clearInterval(statusInterval);
					$("#areaExecuteStatus").css("color", "#000000");
					$("#areaExecuteStatus").text("AGV已返程...");
					console.info("AGV已返程...");
					
					// 第一个寄存器AGV控制，1-AGV上料完成，2-空车拉回完成；第二个寄存器机械臂控制，1-要求AGV上料，2-要求AVG拉回空车；
					let strUrl = "/srds/zflkm/setSignal/0/2";
					$.getJSON(strUrl, function(result) {
						if (result.code != 0) {
							$("#areaExecuteStatus").css("color", "#FF0000");
							$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
							return;
						}
						$("#areaExecuteStatus").css("color", "#000000");
						$("#areaExecuteStatus").text("发送信号正常...任务完成");
					});
					
					// TODO 重置寄存器???
				};
			}).fail(function(jqxhr, textStatus, error) {
				// clearInterval(statusInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("查询AGV返程状态出错，等待重试...");
				
				console.info('查询AGV返程状态出错，等待重试...');
			});
		}
		
		/////////////////////////////////////////////////////////////卸盘\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
		// 执行任务
		function execTask2() {
			$("#areaExecuteStatus").css("color", "#000000");
			$("#areaExecuteStatus").text("正在下发调度指令...");
			console.info('---卸盘开始...');
			
			let strUrl = "/srds/zflkm/execTask/" + TASK_LIST_NAME2; //1. 导航到卸盘待命点
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				$("#areaExecuteStatus").css("color", "#000000");
				$("#areaExecuteStatus").text("AGV取满蛋车中...");
				
				// 查询取满蛋车导航状态
				statusInterval = setInterval(readUpParkingStatus2, 2000);
			}).fail(function(jqxhr, textStatus, error) {
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，任务取消...");
			});
		}
		
		// 查询取满蛋车导航状态
		function readUpParkingStatus2() {
		  //	$("#areaExecuteStatus").css("color", "#000000");
		  //	$("#areaExecuteStatus").text("任务执行中..." + new Date().getTime());

			$.getJSON("/srds/zflkm/taskStatus", function(result) {
				if (result.code != 0) {
					clearInterval(statusInterval);
					console.error(result);
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				if (result.data.statusCode == 4 && result.data.targetId == AGV_UP_PARKING_LOCATION_MARK) {
					clearInterval(statusInterval);
					$("#areaExecuteStatus").css("color", "#000000");
					$("#areaExecuteStatus").text("AGV已到上满蛋车待命点...");
					console.info("AGV已到上满蛋车待命点...");
					
					// 查询机械臂可用状态
					signalInterval = setInterval(readDevAva2, 2000);
				};
			}).fail(function(jqxhr, textStatus, error) {
				clearInterval(statusInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，任务取消...");
			});
		}

		// 查询机械臂可用状态（等待上满蛋车）
		function readDevAva2() {
			// // 第一个寄存器AGV控制，1-AGV上料完成，2-空车拉回完成；第二个寄存器机械臂控制，1-要求AGV上料，2-要求AVG拉回空车；
			let strUrl = "/srds/zflkm/readSignal/1/";
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					clearInterval(signalInterval);
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				let iSignal = result.data;
				console.info("机械臂状态", iSignal);
				
				if (iSignal == 1) {	// 机械臂可用，AGV上空蛋车
					clearInterval(signalInterval);
					$("#areaExecuteStatus").css("color", "#000000");
					$("#areaExecuteStatus").text("机械臂可用，呼叫AGV上满蛋车...");

				//	$("#areaExecuteStatus").css("color", "#000000");
				//	$("#areaExecuteStatus").text("正在下发调度指令...");
					let strUrl = "/srds/zflkm/execTask/" + TASK_LIST_NAME2_UP; //上料到机械臂
					$.getJSON(strUrl, function(result) {
						if (result.code != 0) {
							$("#areaExecuteStatus").css("color", "#FF0000");
							$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
							return;
						}
					//	$("#areaExecuteStatus").css("color", "#000000");
					//	$("#areaExecuteStatus").text("调度指令下发正常...");
						
						// 查询上满蛋车到机械臂状态
						statusInterval = setInterval(readUpDevStatus2, 2000);
					});
				}
			}).fail(function(jqxhr, textStatus, error) {
				clearInterval(signalInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，任务取消...");
			});
		}
		
		// 查询上满蛋车到机械臂状态
		function readUpDevStatus2() {
		//	$("#areaExecuteStatus").css("color", "#000000");
		//	$("#areaExecuteStatus").text("任务执行中..." + new Date().getTime());

			$.getJSON("/srds/zflkm/taskStatus", function(result) {
				if (result.code != 0) {
					clearInterval(statusInterval);
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				if (result.data.statusCode == 4 && result.data.targetId == AGV_TAKE_PARKING_LOCATION_MARK) {
					clearInterval(statusInterval);
					$("#areaExecuteStatus").css("color", "#000000");
					$("#areaExecuteStatus").text("AGV上空蛋车完毕...");
					console.info("AGV上料完毕...");
					
					// // 第一个寄存器AGV控制，1-AGV上料完成，2-空车拉回完成；第二个寄存器机械臂控制，1-要求AGV上料，2-要求AVG拉回空车；
					noticeDev2();
				};
			}).fail(function(jqxhr, textStatus, error) {
				clearInterval(statusInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，任务取消...");
			});
		}


		// 通知机械臂卸盘
		function noticeDev2() {
			$("#areaExecuteStatus").css("color", "#000000");
			$("#areaExecuteStatus").text("通知机械臂卸盘...");
			let strUrl = "/srds/zflkm/setSignal/0/1";
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				$("#areaExecuteStatus").css("color", "#000000");
				$("#areaExecuteStatus").text("等待机械臂卸盘...");
				
				console.info("---等待机械臂卸盘...");
				
				// 机械臂卸盘状态查询
				signalInterval = setInterval(readDevTakeStatus2, 10000);
			}).fail(function(jqxhr, textStatus, error) {
				clearInterval(statusInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，任务取消...");
			});
		}

		// 机械臂卸盘状态查询
		function readDevTakeStatus2() {
			// // 第一个寄存器AGV控制，1-AGV上料完成，2-空车拉回完成；第二个寄存器机械臂控制，1-要求AGV上料，2-要求AVG拉回空车；
			let strUrl = "/srds/zflkm/readSignal/1";
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					clearInterval(signalInterval);
					return;
				}
				let iSignal = result.data;
				console.info("机械臂状态", iSignal);
				
				if (iSignal == 2) {	// 机械臂卸盘完毕
					$("#areaExecuteStatus").css("color", "#000000");
					$("#areaExecuteStatus").text("机械臂卸盘完毕，呼叫AGV返程...");
					clearInterval(signalInterval);

				//	$("#areaExecuteStatus").css("color", "#000000");
				//	$("#areaExecuteStatus").text("正在下发调度指令...");
					let strUrl = "/srds/zflkm/execTask/" + TASK_LIST_NAME2_BACK; //空蛋车返程
					$.getJSON(strUrl, function(result) {
						if (result.code != 0) {
							$("#areaExecuteStatus").css("color", "#FF0000");
							$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
							return;
						}
					//	$("#areaExecuteStatus").css("color", "#000000");
					//	$("#areaExecuteStatus").text("调度指令下发正常...");
						
						// 查询AGV返程状态
						statusInterval = setInterval(readBackStatus2, 2000);
					});
				}
			}).fail(function(jqxhr, textStatus, error) {
				clearInterval(signalInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，任务取消...");
			});
		}

		// 查询AGV返程状态
		function readBackStatus2() {
		 //	$("#areaExecuteStatus").css("color", "#000000");
		 //	$("#areaExecuteStatus").text("任务执行中..." + new Date().getTime());

			$.getJSON("/srds/zflkm/taskStatus", function(result) {
				if (result.code != 0) {
					clearInterval(statusInterval);
					console.error(result);
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				if (result.data.statusCode == 4 && result.data.targetId == AGV_BACK_PARKING_LOCATION_MARK) {
					clearInterval(statusInterval);
					$("#areaExecuteStatus").css("color", "#000000");
					$("#areaExecuteStatus").text("AGV已返程...");
					console.info("AGV已返程...");
					
					// 第一个寄存器AGV控制，1-AGV上料完成，2-空车拉回完成；第二个寄存器机械臂控制，1-要求AGV上料，2-要求AVG拉回空车；
					let strUrl = "/srds/zflkm/setSignal/0/2";
					$.getJSON(strUrl, function(result) {
						if (result.code != 0) {
							$("#areaExecuteStatus").css("color", "#FF0000");
							$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
							return;
						}
						$("#areaExecuteStatus").css("color", "#000000");
						$("#areaExecuteStatus").text("发送信号正常...任务完成");
					});
					
					// TODO 重置寄存器???
				};
			}).fail(function(jqxhr, textStatus, error) {
				clearInterval(statusInterval);
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，任务取消...");
			});
		}
		
		
		
		
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		function execTaskTake() {
			$("#areaExecuteStatus").css("color", "#000000");
			$("#areaExecuteStatus").text("正在下发调度指令...");
			let strUrl = "/srds/zflkm/execTask/" + TASK_LIST_NAME; //导航到上料待命点
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				$("#areaExecuteStatus").css("color", "#000000");
				$("#areaExecuteStatus").text("AGV取料中...");
				
				// 查询上料导航状态
			//	statusInterval = setInterval(readUpParkingStatus, 1000);
			}).fail(function(jqxhr, textStatus, error) {
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，任务取消...");
			});
		}

		function execTaskUp() {
			$("#areaExecuteStatus").css("color", "#000000");
			$("#areaExecuteStatus").text("正在下发调度指令...");
			let strUrl = "/srds/zflkm/execTask/" + TASK_LIST_NAME_UP; //上料到机械臂
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				$("#areaExecuteStatus").css("color", "#000000");
				$("#areaExecuteStatus").text("AGV上料中...");
				
				// 查询上料导航状态
			//	statusInterval = setInterval(readUpParkingStatus, 1000);
			}).fail(function(jqxhr, textStatus, error) {
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，任务取消...");
			});
		}

		function execTaskBack() {
			$("#areaExecuteStatus").css("color", "#000000");
			$("#areaExecuteStatus").text("正在下发调度指令...");
			let strUrl = "/srds/zflkm/execTask/" + TASK_LIST_NAME_BACK; //拉空车回程
			$.getJSON(strUrl, function(result) {
				if (result.code != 0) {
					$("#areaExecuteStatus").css("color", "#FF0000");
					$("#areaExecuteStatus").text("异常代码：" + result.code + "\n\n异常消息：" + result.message);
					return;
				}
				$("#areaExecuteStatus").css("color", "#000000");
				$("#areaExecuteStatus").text("AGV回程中...");
				
				// 查询上料导航状态
			//	statusInterval = setInterval(readUpParkingStatus, 1000);
			}).fail(function(jqxhr, textStatus, error) {
				$("#areaExecuteStatus").css("color", "#FF0000");
				$("#areaExecuteStatus").text("请求出错，任务取消...");
			});
		}
		
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		
		function currLocation() {
			$.getJSON("/srds/zflkm/location", function(result) {
				if (result.code == 0) {
					$("#txtCurrSite").val(result.data);
				}
			});
		}
		
  </script>
</head>
<body style="font-size:100%;">
	<div id="container" style="border:0px solid #FF0000;margin:0px;padding:1px;">
		<div id="header" style="border:0px solid #00FF00;background-color:#C0C0C0;text-align:center;font-size:200%;margin:5px;padding:1px;">
			<b>移动端操作</b>
		</div>

		<div id="content" style="border:0px solid #0000FF;background-color:#EEEEEE;margin:5px;padding:1px;">	
			<table style="width:100%;">
				<!--
				<tr>
					<td style="width:30%;"><label for="txtCurrSite">当前站点：</label></td>
					<td style="width:70%;"><input id="txtCurrSite" type="text" style="width:95%;height:25px;" disabled="disabled" /></td>
				</tr>
				//-->
<!--
				<tr>
					<td colspan="2" style="text-align:center;border:0px solid #FF00FF;">
						<button id="btnZflkm" type="button" style="width:95%;height:50px;background-color:red;">码盘</button>
					</td>
				</tr>
-->
				<tr>
					<td colspan="2" style="text-align:center;border:0px solid #FF00FF;">
						<button id="btnZflkm2" type="button" style="width:95%;height:50px;background-color:red;">卸盘</button>
					</td>
				</tr>

				<!--
				<tr>
					<td colspan="2" style="text-align:center;border:0px solid #00FFFF;">
						<button id="btnZflkmTake" type="button" style="width:30%;height:50px;background-color:red;">手工取料</button>
						<button id="btnZflkmUp" type="button" style="width:30%;height:50px;background-color:red;">手工上料</button>
						<button id="btnZflkmBack" type="button" style="width:30%;height:50px;background-color:red;">手工回程</button>
					</td>
				</tr>
				//-->
				
				<tr>
					<td>
						<label for="areaExecuteStatus" >执行状态：</label>
					</td>
					<td style="text-align:center;">
						<textarea id="areaExecuteStatus" style="width:95%;min-height:300px;font-size:150;font-weight:bold;color:#000000%" disabled="disabled"></textarea>
					</td>
				</tr>
			</table>
		</div>

		<div id="footer" style="border:0px solid #00FF00;background-color:#C0C0C0;text-align:center;margin:5px;padding:1px;">
			苏州天天智能科技有限公司
		</div>
		<!--
		<div id="footer" style="border:0px solid #00FF00;background-color:#C0C0C0;text-align:center;margin:5px;padding:1px;">
			天天供应链 &#8226; 天天智能科技
		</div>
		-->
		<!--
		<div id="footer" style="border:0px solid #00FF00;background-color:#C0C0C0;text-align:center;margin:5px;padding:1px;">
			版权 &#169; 天天供应链 &#8226; 天天智能科技
		</div>
		-->
		
	</div>
</body>
</html>